
import re
import importlib
from typing import List
from pathlib import Path


def get_routers_file(tags_metadata: List[dict]):
    """
    获取 routers 目录下，所有路由文件
        :param tags_metadata: tags的元数据
    """
    for x in Path(f"{Path.cwd()}/routers").glob('*.py'):
        file_name = x.name
        if not file_name.startswith("_"):
            # 导入 routers 目录下所有 非_ 作为起始文件名的模块
            file_name_no_suffix = x.stem
            try:
                moudle = importlib.import_module(f'routers.{file_name_no_suffix}')
            except ImportError:
                continue
            description = "".join(re.findall(r"@Description:(.*)", moudle.__doc__)).strip()
            if description:
                tags_metadata.append({
                    "name": file_name_no_suffix.capitalize(),
                    "description": description,
                })


def get_tags_metadata():
    tags_metadata = []
    get_routers_file(tags_metadata)
    return tags_metadata


get_tags_metadata()